import { useState, useCallback } from 'react';

// 我们都知道如果想让组件重新渲染，我们不得不更新state，但是有时候业务需要的state是没必要更新的，
// 我们不能仅仅为了让组件会重新渲染而强制让一个state做无意义的更新，
// 所以这个时候我们就可以自定义一个更新的hooks来优雅的实现组件的强制更新
// const useUpdate = () => {
//   const [, setFlag] = useState();
//   const update = () => {
//     setFlag(Date.now());
//   };

//   return update;
// };

// 借鉴ahooks
const useUpdate = () => {
  const [, setState] = useState({});
  return useCallback(() => setState({}), []);
};

export default useUpdate;

// const Home = (props) => {
//   // ...
//   const update = useUpdate();
//   return (
//     <div>
//       {Date.now()}
//       <div>
//         <button onClick={update}>update</button>
//       </div>
//     </div>
//   );
// };
